package cn.tedu.lbs.basic.web.controller;

import cn.tedu.lbs.basic.web.service.TagService;
import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.pojo.basic.param.UserTagsParam;
import com.tarena.lbs.pojo.basic.vo.TagVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
@Slf4j
public class TagController {
    @Autowired
    private TagService tagService;
    @GetMapping("/basic/tagLibrary/info/article/tags")
    public Result<Map<String, List<TagVO>>> articleTags(){
        long start=System.currentTimeMillis();
        //为了保证业务层可以直接复用. 除了查询文章标签数据 还需要查询 用户标签 tagType=0|1
        Integer tagType=0;
        Map<String, List<TagVO>> stringListMap = tagService.tagMaps(tagType);
        long end=System.currentTimeMillis();
        log.info("查询文章标签二级树耗时:{}MS",end-start);
        return new Result<>(stringListMap);
    }

    @GetMapping("/basic/tagLibrary/info/userList")
    public Result<Map<String, List<TagVO>>> userTags(){
        //为了保证业务层可以直接复用. 除了查询文章标签数据 还需要查询 用户标签 tagType=0|1
        Integer tagType=1;
        Map<String, List<TagVO>> stringListMap = tagService.tagMaps(tagType);
        return new Result<>(stringListMap);
    }
    @GetMapping("/basic/tagLibrary/info/user/tags")
    public Result<Map<String, List<TagVO>>> userGroupTags(){
        //为了保证业务层可以直接复用. 除了查询文章标签数据 还需要查询 用户标签 tagType=0|1
        Integer tagType=1;
        Map<String, List<TagVO>> stringListMap = tagService.tagMaps(tagType);
        return new Result<>(stringListMap);
    }
    //小程序用户选择需要绑定的标签数据 做新增处理
    @GetMapping("/basic/user/tag")
    public Result<Void> userBindTags(UserTagsParam userTagsParam)
        throws BusinessException{
        tagService.userBindTags(userTagsParam);
        return Result.success();
    }
}
